/**
 * @description 表单字段校验
 */
export const verify = {
  requiredInput: (typeId = 1, message = '', type?: any, trigger?: any, required = true) => {
    let data: any = { required, message: `${typeId === 1 ? '请输入' : '请选择'}${message}` };
    if (type) data = { ...data, type };
    if (trigger) data = { ...data, trigger };
    if (!required) data = { required: false };
    return data;
  },
  // 纯数字
  pureNumber: {
    value: /^[0-9]*$/,
    label: '请输正整数'
  },
  // 1-9数字
  number1_9: {
    value: /^[1-9]$/,
    label: '范围1-9'
  },
  // 1-31
  number1_31: {
    value: /^([1-9]|[1-2]\d|3[0-1])$/,
    label: '范围1-31'
  },
  // 1-99
  number1_99: {
    value: /^(([0-9][1-9])|([1-9][0-9])|[1-9])$/,
    label: '范围1-99'
  },  
  // 1-9999
  number1_9999: {
    value: /^(1|([1-9]\d{0,3}))$/,
    label: '范围1-9999'
  },
  // 1-99999999
  number1_99999999: {
    value: /^(1|([1-9]\d{0,7}))$/,
    label: '大于0小于100000000'
  },
  float0_1: {
    value: /^0\.[0-9]{1,2}$|^0{1}$|^1{1}$|^1\.[0]{1,2}$/,
    label: '大于0小于1,允许保留2位小数'
  },
  // 0-99之间,支持两位小数
  float0_99: {
    value: /^([1-9]\d{0,1}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)$/,
    label: '大于0小于100,支持两位小数'
  },
  // 0-99之间,支持三位小数
  float0_99_3: {
    value: /^([1-9]\d{0,1}$)|(^[0-9]{1,2}\.[0-9]{1,3}$)$/,
    label: '大于0小于100,支持三位小数'
  },
  // 0-99之间包含0,支持三位小数
  float0_0_99_3: {
    value: /^0|([1-9]\d{0,1}$)|(^[0-9]{1,2}\.[0-9]{1,3}$)$/,
    label: '大于等于0小于100,支持三位小数'
  },    
  // 0-100之间,支持两位小数
  float0_100: {
    value: /^([1-9]\d{0,1}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
    label: '大于0小于等于100,支持两位小数'
  },
  // 大于0的数(最大9位整数),支持两位小数
  float0_infinity: {
    value: /^([1-9]\d{0,5}$)|(^[0-9]{1,5}\.[0-9]{1,2}$)$/,
    label: '大于0,支持两位小数'
  },
  float0_infinity_3: {
    value: /^([1-9]\d{0,5}$)|(^[0-9]{1,5}\.[0-9]{1,3}$)$/,
    label: '大于0,支持三位小数'
  },  
  // 手机号码
  mobile: {
    // value: /^1\d{10}$/,
    value: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
    label: '请输入正确的手机号码'
  },
  email: {
    value: /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/,
    label: '请输入正确的邮箱'
  },
  // 身份证
  iDCard: /^(\d{18}|\d{15}|\d{17}x)$/,
  // 中文
  zh: /^[\u4e00-\u9fa5],{0,}$/,
  // 固定号码
  phone: {
    value: /^(0\d{2,3}[- ]?\d{7,8})|((13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/,
    label: '请输入正确的电话号码'
  },
}

/**
 * 按身份证号码获取性别
 * @idNumber 身份证号码
 * @return 男 女
 */
export const getGender = (idNumber) => {
	let res = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
	if (idNumber && res.test(idNumber)) {
		let genderCode = idNumber.charAt(16);
		if (parseInt(genderCode) % 2 == 0) {
			return 2;
		}
		return 1;
	}
  return 1;
}
